package unit8.part1;

import javax.swing.*;
import java.awt.*;

public class LayoutTest {
    public static void main(String[] args) {
        JFrame jFrame = new JFrame("测试布局");
        jFrame.setSize(500, 300);

        jFrame.setLayout(null);// 绝对布局
        JButton button = new JButton("按钮");
        button.setBounds(0, 0, 100, 100);// 因为上层是绝对布局，所以元素需要指定位置和宽高

        jFrame.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));// 流式布局（居中）
        for (int i = 0; i < 10; i++) {
            JButton jButton = new JButton("按钮" + i);
            jButton.setPreferredSize(new Dimension(100, 100));// 因为上层是流式布局，所以元素需要指定大小，使用Prefer
            jFrame.add(jButton);
        }

        jFrame.setLayout(new BorderLayout(10, 10));// 边界布局
        jFrame.add(new JButton("左按钮"), BorderLayout.WEST);// 元素无法调整大小
        jFrame.add(new JButton("右按钮"), BorderLayout.EAST);
        jFrame.add(new JButton("中按钮"), BorderLayout.CENTER);

        jFrame.setLayout(new GridLayout(2, 5, 10, 10));// 放不下则有限保证行数，自动扩充列数
        for (int i = 0; i < 10; i++) {
            jFrame.add(new JButton("按钮" + i));// 元素无法调整大小
        }

        // 叠起来的卡片布局
        // CardLayout

        jFrame.setVisible(true);
    }
}
